package com.atguigu.bigdata.scala.chapter05

object Scala07_Function_Hell_6 {

    def main(args: Array[String]): Unit = {

        // TODO 函数式编程 - 地狱

        // 函数作为对象
        // 函数作为参数
        // TODO 3. 将函数作为返回值使用, 一般嵌套使用
        //         一般情况下，如果函数的返回值为函数对象，那么函数的返回值类型一般不声明
        //         此时，返回函数对象需要使用下划线
        /*
          public User test() {
              User user = new User();
              return user;
          }
         */

        /*
        def fun(): Unit = {
            println("fun...")
        }

        def test(): ()=>Unit = {
            fun _
        }

        // 函数的执行结果是一个函数
        val f = test()
        f()
         */

        def test() = {
            def fun(): Unit = {
                println("fun...")
            }

            fun _
        }

        //val f = test()
        //f()
        test()()





    }
}
